Amazon云计算AWS之[1]基础存储架构Dynamo

您所在的位置:网站首页 amazon s3采用什么架构 Amazon云计算AWS之[1]基础存储架构Dynamo

Amazon云计算AWS之[1]基础存储架构Dynamo

2024-07-09 12:51| 来源: 网络整理| 查看: 265

客户端请求写入一个新对象。节点 S x S_x Sx​处理对 k e y key key的写:序列号递增,并创建数据的向量时钟,在该节点上生成对象D1和向量时钟 [ ( S x , 1 ) ] [(S_x, 1)] [(Sx​,1)]。

客户端更新该对象。假设由同样的节点即 S x S_x Sx​处理这个请求,由于该节点有 D 1 D_1 D1​和向量时钟 [ ( S x , 1 ) ] [(S_x, 1)] [(Sx​,1)],则更新该对象后在该节点上生成对象 D 2 D_2 D2​和向量时钟 [ ( S x , 2 ) ] [(S_x, 2)] [(Sx​,2)], D 2 D_2 D2​继承自 D 1 D_1 D1​,即 D 2 D_2 D2​覆写 D 1 D_1 D1​,计数器增 1 1 1,但其它节点此时可能是 D 1 D_1 D1​,也可能是 D 2 D_2 D2​(取决于网络和节点状态)

假设同一客户端更新该对象但被不同的服务器处理。节点 S y S_y Sy​处理这个请求,则更新该对象后在该节点上生成对象 D 3 D_3 D3​和向量时钟 [ ( S x , 2 ) , ( S y , 1 ) ] [(S_x, 2), (S_y, 1)] [(Sx​,2),(Sy​,1)]。

假设另一客户端读取到 D 2 D_2 D2​并尝试更新它但被另一个不同的服务器处理。节点 S z S_z Sz​处理了这个请求,则更新该对象后在该节点上生成对象 D 4 D_4 D4​和向量时钟 [ ( S x , 2 ) , ( S z , 1 ) ] [(S_x, 2), (S_z, 1)] [(Sx​,2),(Sz​,1)]。

节点数据版本回收。现在有4个版本的数据存在并在各个节点之间传递了,当节点收到 D 3 D_3 D3​或 D 4 D_4 D4​时,会根据向量时钟将#D_1#和#D_2#回收掉,因为其是 D 3 D_3 D3​和 D 4 D_4 D4​的祖先。但是收到 D 3 D_3 D3​和 D 4 D_4 D4​的节点,根据向量时钟发现它们之间是并行关系,则保留二者,并在客户端get时将二者都提交给客户端由其来协调并合并版本。

假设客户端读取数据,则会获取到 D 3 D_3 D3​和 D 4 D_4 D4​,根据两者的向量时钟,会合并为 D 5 D_5 D5​和向量时钟 [ ( S x , 2 ) , ( S y , 1 ) , ( S z , 1 ) ] [(S_x, 2), (S_y, 1), (S_z, 1)] [(Sx​,2),(Sy​,1),(Sz​,1)],节点 S x S_x Sx​协调写操作,并更新对象和向量时钟。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3